using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace fenk.Stock
{
    public partial class PrMovimientos : mvLibrary.BaseForm
    {
        public PrMovimientos()
        {
            InitializeComponent();
        }
        public override void BeforeSaveItem()
        {
            // guardar codigo usuario
            if (ItemStatus == Status.New)
            {
                _item[1] = User;
            }
            //
            // hay que recalcular totales por producto?
            //
            if (_item[6].ToString() != "")
            {
                string totalproductos = "";
                int countProductos = _item.DCount(6);
                for (int a = 1; a <= countProductos; ++a)
                {
                    totalproductos = GetDefaultValue("@CALC D2 * D5", false, 1, a);
                    if (totalproductos != _item[15, a].ToString())
                    {
                        CancelSaveItem = true;
                        ErrorMessage = "Debe recalcular valores en la fila " + a.ToString() + " de productos";
                        break;
                    }
                }
            }
        }
        public override void AfterReadItem()
        {
            // no permite modificar registros ya autorizados
            if (ItemStatus == Status.Update)
            {
                if (_item[30].ToString() != "" | _item[31].ToString() != "")
                {
                    CancelSaveItem = true;
                    ErrorMessage = "Registro ya controlado";
                    MessageBox.Show("Registro ya controlado");
                    panelData.Enabled = false;
                }
            }
        }

        private void butODC_Click(object sender, EventArgs e)
        {
            if (ItemStatus == Status.New)
            {
                if (MessageBox.Show("Cargar detalle productos desde ODC?", "Confirmar", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    CallProgram("ST.LOAD.ODC", 1, 1);
                    gridStock.Rows.Clear();
                    FillDataGridView(ref gridStock);
                    if (gridStock.Rows.Count > 0)
                    {
                        gridStock.CurrentCell = gridStock[0, 0];
                    }
                }
            }
        }
    }
}

